<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <my-span></my-span>
        <my-dl v-for="(item,ind) in list" :text="item.name" :url="item.url" :key="ind"></my-dl>
    </div>
    <script src="./vue.js"></script>
    <template id="tpl">
        <div>
            <my-span></my-span>
            <dl>
                <dt>
                    <img :src="url" alt="">
                </dt>
                <dd>{{text}}</dd>
            </dl>
        </div>
    </template>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                list:[
                    {
                        url:'1.jpg',
                        name:'wenzi'
                    },
                    {
                        url:'1.jpg',
                        name:'wenzi'
                    },
                    {
                        url:'1.jpg',
                        name:'wenzi'
                    }
                ]
            },
            components:{
                'my-dl':{
                    template:'#tpl',
                    props:['text','url'],
                    components:{
                        'my-span':{
                            template:'<span>123</span>'
                        }
                    }
                }
            }
        })
    </script>
</body>
</html>